var HCRM_ACCESS = -1; // -1：异常 0：正常使用 5：初次购买 10：再次购买

var WN_HORIZONTAL_MENU = (function() {
	
	var $wnHorizontalMenu = $('#wnHorizontalMenu');
	var userUUID = $wnHorizontalMenu.data('useruuid');
//	var urlhome = $wnHorizontalMenu.data('urlhome');
	
	/**
	 * 生成水平菜单( 用户个人信息 + 菜单内容)
	 */
	function build() {
		
		if (userUUID && userUUID.length) {
			var activeWorkFlowType = $wnHorizontalMenu.data('workflowtype');
			$.post(
				WeKnow.getRealPath() + '/wncrm_horizontal_menu.do',
				{userUUID: userUUID},
				function(data, status) {
					if (!WeKnow.filterAjaxResult(data)) return false; // session过期check
					var menus = data.menus;
					if (data.errorcode == 0 && menus.length) {
						var e = '';
						e += '<nav class="navbar navbar-default wnHorizontalMenu">';
							e += '<div class="container-fluid" style="padding-left: initial; padding-right: initial;">';
								// <!-- Collect the nav links, forms, and other content for toggling -->
								e += '<div class="collapse navbar-collapse" style="padding-left: 0px;">';
									e += '<ul class="nav navbar-nav service-menu">';
										$(menus).each(function(idx, first) { // 遍历1级menu
											if (first.childrens == null) { // 没有2级菜单
												e += '<li class="' + (activeWorkFlowType == first.workFlowType?'active':'') + (first.available?'':'unavailable') + '"';
													if (first.available) {
														e += ' data-url="' + first.url + '"';
														e += ' data-workflowtype="' + first.workFlowType + '"';
													}
												e += '>';
													e += '<a href="javascript:void(0);">' + first.name + '</a>';
												e += '</li>';
											} else { // 有2级菜单
												e += '<li class="dropdown ' + (activeWorkFlowType == first.workFlowType ? 'active' : '') + (first.available?'':'unavailable') + '"';
												if (first.available) {
													e += ' data-url="' + first.url + '"';
													e += ' data-workflowtype="' + first.workFlowType + '"';
												}
												e += '>';
													e += '<a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">' + first.name + '<span class="caret"></span></a>';
													e += '<ul class="dropdown-menu">';
													$.each(first.childrens, function(idx2, second) {
														e += '<li class="' + (second.available?'':'unavailable') + '"';
															if (second.available) {
																e += ' data-url="' + second.url + '"';
																e += ' data-workflowtype="' + second.workFlowType + '"';
															}
														e += '>';
															e += '<a href="javascript:void(0);">' + second.name + '</a>';
														e += '</li>';
													});
													e += '</ul>';
												e += '</li>';
											}
										});
									e += '</ul>';
									e += '<ul class="nav navbar-nav navbar-right">';
										e += '<li style="border-width: 0px;">';
											e += '<a href="javascript:void(0);" name="tagModify" title="用户标签"><i class="fa fa-bookmark fa-lg"></i></a>';
										e += '</li>';
									e += '</ul>';
									// 健康档案pdf打印
									e += '<ul class="nav navbar-nav navbar-right">';
										e += '<li style="border-width: 0px;">';
											e += '<a href="javascript:void(0);" name="pdfPrint" title="健康档案打印"><i class="fa fa-print fa-lg"></i></a>';
										e += '</li>';
									e += '</ul>';
//									// 管理员可以 设置菜单等
//									if (data.superManager) {
//										e += '<ul class="nav navbar-nav navbar-right">';
//											e += '<li style="border-width: 0px;">';
//												e += '<a href="javascript:void(0);" name="menuSetting" title="菜单设置"><i class="fa fa-cogs fa-lg"></i></a>';
//											e += '</li>';
//										e += '</ul>';
//									}
								e += '</div>'; //<!-- /.navbar-collapse -->
							e += '</div>'; // <!-- /.container-fluid -->
						e += '</nav>';
						if (!$wnHorizontalMenu.find('nav').length) { // 防止多次做成横向业务菜单
							var $menu = $(e).appendTo($wnHorizontalMenu);
							$($menu).find('ul.service-menu li').on('click', function() {
								var $that = $(this);
								if ($that.hasClass('unavailable')) { // 没有权限使用
//									WeKnow.notifyMsg('需要开通企业版才能使用');
									if (HCRM_ACCESS == 5) { // 引导购买
//										WeKnow.newMaxWindow('wncrm_wkaccount_order.do');
										WeKnow.confirm('该功能需要购买才能使用，是否购买？', function() {
											WeKnow.newMaxWindow('wncrm_wkaccount_order.do');
										});
									} else if (HCRM_ACCESS == 10) {
										WeKnow.notifyMsg('账号已过期，请联系客服人员。');
										return false;
									} else {
										return false;
									}
								} else {
									if (!$that.hasClass('dropdown')) { // 下拉菜单
										WeKnow.submit(
											WeKnow.getRealPath() + '/' + $that.data('url'),
											{
												workFlowType: $that.data('workflowtype'),
												userUUID: userUUID
											}
										);
									}
								}
							});
						}
					}
					
					HCRM_ACCESS = data.hcrmaccess;
				}
			);
		}
	}
	
//	/**
//	 * 自定义菜单
//	 */
//	function customizes() {
//		var e = '';
//		e += '<div class="modal fade" tabindex="-1" role="dialog">';
//			e += '<div class="modal-dialog modal-sm" role="document">';
//				e += '<div class="modal-content">';
//					e += '<div class="modal-header" style="background-color: #f5f5f5;">';
//					e += '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
//					e += '<h4 class="modal-title text-center">菜单设置</h4>';
//				e += '</div>';
//				e += '<div class="modal-body">';
//					e += '<ul class="list-group" style="margin-bottom: 5px;">';
//						$.ajax({ 
//					        type: "POST",
//					        url: WeKnow.getRealPath() + "/wncrm_horizontal_menu.do/settting/init",
//					        dataType: "json",
//					        async: false,
//					        success:function(data) {
//					        	if (!WeKnow.filterAjaxResult(data)) return false; // session过期check
//					        	if (data.errcode == 0) {
//					        		var menus = data.menus;
//					        		if (menus && menus.length) {
//					        			$(menus).each(function(idx, menu) {
//				        					e += '<li class="list-group-item" style="padding: 1px;" data-menuid="' + menu.id + '">';
//				        						e += '<div class="row">';
//				        							e += '<div class="col-xs-6">';
//				        								e += '<input type="text" name="menuName" class="form-control input-sm" maxlength="6" value="' + menu.name + '">';
//				        							e += '</div>';
//				        							e += '<div class="col-xs-6">';
//				        								e += '<div class="form-inline">';
//				        									e += '<div class="form-group">';
//					        									e += '<a href="javascript:void(0);" name="menuUp" style="color: #999;"><i class="fa fa-arrow-up"></i></a>';
//					        									e += '<a href="javascript:void(0);" name="menuDown" style="color: #999; margin-left: 10px;"><i class="fa fa-arrow-down"></i></a>';
//					        									e += '<div class="checkbox" style="margin-left: 10px;">';
//					        										e += '<label>';
//					        											e += '<input name="menuVisibility" type="checkbox" ' + (menu.visibility == 1 ? 'checked' : '') + '> 使用';
//					        										e += '</label>';
//					        									e += '</div>';
//				        									e += '</div>';
//				        								e += '</div>';
//				        							e += '</div>';
//				        						e += '</div>'
//				        					e += '</li>';
//					        			})
//					        		}
//								}
//					        },
//					        error: function() {
//					        	WeKnow.systemMsg("系统异常");
//					        	return false;
//					        }
//						});
//					e += '</ul>';
//					e += '<p class="text-right">';
//						e += '<button type="button" class="btn btn-primary" name="saveMenuSetting">保存</button>'
//					e += '</p>';
//				e += '</div>';
//			e += '</div>';
//		e += '</div>';
//		var $modal = $(e).appendTo('body').modal('show');
//		$modal.one('shown.bs.modal', function() {
//			$modal.find('a[name="menuUp"]').on('click', function() {
//				var $currentMenu = $(this).closest('li');
//				var $prevMenu = $currentMenu.prev('li');
//				if ($prevMenu.length) {
//					WeKnow.swap($currentMenu, $prevMenu);
//				}
//			});
//			$modal.find('a[name="menuDown"]').on('click', function() {
//				var $currentMenu = $(this).closest('li');
//				var $nextMenu = $currentMenu.next('li');
//				if ($nextMenu.length) {
//					WeKnow.swap($currentMenu, $nextMenu);
//				}
//			});
//			// 保存菜单设定
//			$modal.find('button[name="saveMenuSetting"]').on('click', function() {
//				var rulus = [];
//				var hasErr = false;
//				var hasVisibility = false;
//				$($modal.find('li.list-group-item[data-menuid]')).each(function(idx, _menu) {
//					var $menuProp = $(_menu);
//					var r = {};
//					r.menuId = $menuProp.data('menuid');
//					// 菜单名称
//					var $menuName = $menuProp.find('input[name="menuName"]');
//					if (!$.trim($menuName.val()).length) {
//						WeKnow.errorMsg('请输入菜单名称');
//						$menuName.focus();
//						hasErr = true;
//						return false;
//					} else {
//						r.name = $.trim($menuName.val());
//					}
//					// 菜单是否可见
//					if ($menuProp.find('input[name="menuVisibility"]:checked').length) {
//						r.visibility = 1;
//						hasVisibility = true;
//					} else {
//						r.visibility = 0
//					}
//					
//					r.orderNb = idx + 1;
//					rulus.push(r);
//				});
//				
//				if (!hasErr) {
//					if (rulus.length == 0) {
//						WeKnow.systemMsg('系统异常');
//					} else {
//						if (!hasVisibility) {
//							WeKnow.errorMsg('使用项目至少1项');
//							return false;
//						}
//						
//						WeKnow.loading();
//						$.ajax({
//					        type: "POST",
//					        url: WeKnow.getRealPath() + "/wncrm_horizontal_menu.do/settting/save",
//					        dataType: "json",
//					        contentType: "application/json",        
//					        data: JSON.stringify(rulus),
//					        async: false,
//					        success:function(data) {
//					        	if (!WeKnow.filterAjaxResult(data)) return false; // session过期check
//					        	if (data.errcode == 0) {
//					        		WeKnow.successMsg('菜单设置成功');
//					        		// 刷新横向菜单
//					        		$wnHorizontalMenu.empty();
//					        		build();
//					        		$modal.modal('hide');
//								}
//					        },
//					        error: function() {
//					        	WeKnow.systemMsg("系统异常");
//					        	return false;
//					        }
//						});
//						WeKnow.closeLoading();
//					}
//				}
//				
//			});
//		}).one('hidden.bs.modal', function() {
//			$modal.remove(); // 取消事件注册
//		});
//	}
	
	//add by zhengxb 2018.6.8 start ------------------------------------------------------
	// 模块级的常量定义
	var css_selected ="btn btn-default btn-sm btn-marigin";  //标签被选中时按钮的样式 
	var css_no_selected ="btn btn-info btn-sm btn-marigin";  //标签未选择时按钮的样式
	
	/**
	 * 用户标签维护
	 */
	function tagModify() {
		var e = '';
		e += '<div class="modal fade" id="tagModifyModal" tabindex="-1" role="dialog">';
			e += '<div class="modal-dialog" role="document">';
				e += '	<div class="modal-content">';
					e += '<div class="modal-header">';
						e += '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
						e += '<h4 class="modal-title text-center">标签</h4>';
					e += '</div>';
					e += '<div class="modal-body">';
							e += '<div style="height:20px;"><h6>已添加标签：</h6></div>';
							e += '<div class="div-tag-display-area" id="user_tagg_area"></div>';
							e += '<div style="height:20px;"><h6>所有标签：</h6></div>';
							e += '<div class="div-tag-display-area" id="all_tags_area"></div>';
						e += '</div>';
					e += '<div class="alert alert-success" style="display: none;"><p id="successMsg"></p></div>';
					e += '<div class="alert alert-danger" style="display: none;"><p id="dangerMsg"></p></div>';
					e += '<div class="modal-footer">';
						e += '<button type="button" class="btn btn-primary" data-dismiss="modal" name="saveUserTags">保存</button>';
						e += '<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>';
					e += '</div>';
				e += '</div>';
			e += '</div>';
		e += '</div>';
		// 添加至body中
		var $modal = $(e).appendTo('body').modal('show');
		
		$modal.one('shown.bs.modal', function() {
			
			 // 取出数据库中已经有的用户标签，并显示
			showAllTags();
			
			// 所有标签领域里点击时，将标签移入
			$('div#all_tags_area').on('click',"button",function (e) {
				allTagsAreaBtnClick(this);
			});
			// 用户标签点击时，将标签移出
			$('div#user_tagg_area').on('click',"button",function (e) {
				// 修改全部中的按钮样式变成未选择
				setCssNoSelected(this);
				// 删除用户标签
				$(this).remove();
			});

			// 保存菜单设定
			$modal.find('button[name="saveUserTags"]').on('click', function() {
				saveUserTags();
			});
		}).one('hidden.bs.modal', function() {
			$modal.remove(); // 取消事件注册
		});
	}
	
	//机构的用户标签保存处理
	function saveUserTags() {
		// 访问URL
		var postUrl = WeKnow.getRealPath() + "/wncrm_user_patient_tag.do/user/save";
		
		$usertag = $('div#user_tagg_area button');
		var usertags = [];
		$usertag.each(function(idx, _tag) {
			usertags.push($(_tag).attr('name'));
		});
		
		// 参数
		var userTagModel = {};
		
		userTagModel.userUUID = $("#userUUID").val();
		userTagModel.usertags =  usertags;
		
		console.log('usertags========================'+userTagModel);
		
		WeKnow.loading();
		
	    $.ajax({ 
	        type:"POST",   
	        url:postUrl,   
	        dataType:"json",        
	        contentType:"application/json",                 
	        data:JSON.stringify( userTagModel ),
	        async:false,
	        success:function(data){   
	    		if (data.errorcode == 0) {
					WeKnow.notifyMsg('用户标签修改成功！');
				} else if (data.errorcode == -1) {
					WeKnow.errorMsg('用户标签修改失败，请稍后再试！');
				}                     
	        }   
	    });   
		
		WeKnow.closeLoading();
	}

	/**
	 * 获取机构内所有标签内容
	 * */
	function showAllTags() {

		console.log("showAllTags start -------------------------");
		
		var postUrl = WeKnow.getRealPath() + "/wncrm_user_patient_tag.do/search_list";
		var params = { userUUID:$("#userUUID").val() };
		                       
		//post数据
		$.post(postUrl, params, function(data, status) {
			if (data.errorcode == 0) {
				// 获取到标签管理表中该机构的所有标签
				var taglist = data.institutionTags;
				// 获取到标签管理表中该机构的所有标签
				var userTags = data.userTags;
				
				// 1.所有标签表示领域内容生成-------------------------------
				var $root = $('#all_tags_area');
				$root.empty();
				var e = '';

				// 遍历数据成生标签控件html文
				$( taglist ).each(function(idx, record) {
					//e += getOneRowHtml( record );
					e+='<button type="button"';
					e+='class="';
					
					var css_val = '';
					// 该标签已经被用户选中了
					if ( isSelected( record.id , userTags ) ){
						css_val = css_selected
					} else {
						css_val = css_no_selected;
					}
					
					e+=css_val;
					e+='" ';
					e+='name="'+ record.id + '">';
					e+= record.tagName;
					e+= '</button>';
					
				});
				// 追加至所有标签表示区域
				$(e).appendTo($root);
				
				// 2. 用户标签表示领域内容生成-------------------------------
				var $root1 = $('#user_tagg_area');
				$root1.empty();
				e = '';

				// 遍历数据成生标签控件html文
				$( userTags ).each(function(idx, record) {
					e += getOneRowUserHtml( record );
				});
				// 追加至所有标签表示区域
				$(e).appendTo($root1);
				
			} else if (data.errorcode == -1) {
				WeKnow.errorMsg('暂未设置用户标签');
			}
		});
		console.log("showAllTags end -------------------------");
	}

	/**
	 * 判断一个标签是否已经给用户打过标了
	 * 
	 * @return true:已打 false:未打
	 * 
	 * */
	function isSelected( curTagId, userTags ){
		var loopErr = false;
		
	    for(var i= 0;i< userTags.length ; i++){  
	        if ( curTagId == userTags[i].tagId ){
	        	// 找到了
	        	loopErr = true;
	        	return loopErr;
	        }
	    }
	    return loopErr;
	}
	
	/**
	 * 生成一个标签的html文(数据源：标签管理表)
	 * */
	function getOneRowHtml( record ){
		var _html = '';
		_html+='<button type="button" class="btn btn-info btn-sm btn-marigin" name="'+ record.id + '">';
		_html+= record.tagName;
		_html+= '</button>';
		return _html;
	}

	/**
	 * 生成一个标签的html文(数据源：用户标签表)
	 * */
	function getOneRowUserHtml( record ){
		var _html = '';
		_html+='<button type="button" class="btn btn-info btn-sm btn-marigin" name="'+ record.tagId + '">';
		_html+= record.tagName;
		_html+= '</button>';
		return _html;
	}

	
	/**
	 * 所有标签块里的标签点击处理
	 * */
	function allTagsAreaBtnClick( obj ) {
		
		$that = $(obj);
		// 获取button的name属性，它对应着tag管理表的的ID一一对应
		var name = $that.attr('name');
		// 获取单个用户的已打标签列表
		var usertagCur = getUserTags();
		// 不存在情况下，把标签增加到个人标签DIV中
		if ( !hasUserTag( name,usertagCur)){
			var tagName = $that.text();
			var record = { id:name , tagName:tagName };
			var e = getOneRowHtml( record );
			$(e).appendTo($('div#user_tagg_area'));
			
			//修改原标签的CSS
			setCssSelected(obj);
		}
	}

	/**
	 * 有数据时的button样式 
	 */
	function setCssSelected( btnObj ){
		
		$that = $(btnObj);
		// 按钮样式变更
		$that.removeClass( css_no_selected  );
		$that.addClass( css_selected );
	}

	/**
	 * 从用户标签组移除标签时，button样式改变
	 */
	function setCssNoSelected( btnObj ){
		
		$that = $(btnObj);
		
		$all_tags = $('div#all_tags_area button');
		// 循环页面中的所有标签DIV
		$all_tags.each(function(idx, _tag) {
			
			var name = $that.attr('name');
			// 找到从用户标签组移除时，变换CSS
			if ( name == $(_tag).attr('name') ) {
				$(_tag).removeClass( css_selected );
				$(_tag).addClass( css_no_selected );
				return false;
			}
		});
	}
	
	/**
	 * 获取该用户的标签
	 * */
	function getUserTags(){
		$usertag = $('div#user_tagg_area button');
		
		var usertag = []; //单个用户标签数组
		
		$usertag.each(function(idx, _tag) {
			usertag[idx] = $(_tag).attr('name');
		});
		
		return usertag;
	}

	/**
	 * 指定标签在用户标签组中是否存在
	 * 
	 * @return true:存在 false：不存在
	 * */
	function hasUserTag( tagname ,arrayobj ){
		
		var loopErr = false;
		
	    for(var i= 0;i<arrayobj.length;i++){  
	        if ( tagname == arrayobj[i] ){
	        	// 找到了
	        	loopErr = true;
	        	return loopErr;
	        }
	    }
	    return loopErr;
	}
	
	//add by zhengxb 2018.6.8 start ------------------------------------------------------	
	
	return {
		build: build,
//		customizes: customizes,
		tagModify:tagModify
	}
})();
WN_HORIZONTAL_MENU.build();

$(document).ready(function() {
//	// 设置菜单
//	$('#wnHorizontalMenu').on('click', 'a[name="menuSetting"]', function(e) {
//		WN_HORIZONTAL_MENU.customizes();
//		return false;
//	});
	// 用户标签 add by zhengxb 2018.06.07 ----------
	$('#wnHorizontalMenu').on('click', 'a[name="tagModify"]', function(e) {
		WN_HORIZONTAL_MENU.tagModify();
		return false;
	});
	// pdf打印
	$('#wnHorizontalMenu').on('click', 'a[name="pdfPrint"]', function(e) {
		WeKnow.loading();
		var $wnHorizontalMenu = $('#wnHorizontalMenu');
		var userUUID = $wnHorizontalMenu.data('useruuid');
//		var urlhome = $wnHorizontalMenu.data('urlhome');
		$.post(
			WeKnow.getRealPath() + '/wncrm_healthdata.do/pdfPrint',
			{userUUID: userUUID},
			function(data, status) {
				if (!WeKnow.filterAjaxResult(data)) return false; // session过期check
				
				if (data) {
					if (data.errorcode == 0) {
						var pdfUrl = data.pdfUrl;
						WeKnow.newWindow(pdfUrl);
					} else {
						// WeKnow.errorMsg('健康档案报告生成出错，请稍后再试！');
						WeKnow.systemMsg("健康档案报告生成出错，请稍后再试！" + data.errorMsg);
						return false;
					}
				}
				WeKnow.closeLoading();
			}
		);
	});
	
	// 针对偶尔页面显示ok但是横向菜单没有显示的问题修复 20180328
	var interval = setInterval(
		function() {
			var $wnHorizontalMenu = $('#wnHorizontalMenu');
			if (!$wnHorizontalMenu.find('nav').length) {
				WN_HORIZONTAL_MENU.build();
			} else {
				clearInterval(interval);
			}
		}, 300
	);
});